﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ezCloud.Data;
using System.Collections;
using ezCloud.Api.Controllers;
using Newtonsoft.Json;

namespace ezCloud.Api.Common
{
    public class SaveRoomData
    {
        public ReservationRooms room { get; set; }
        public Travellers customer { get; set; }
        public List<SharerViewModel> sharerList { get; set; }
        public List<Payments> paymentList { get; set; }
        // public List<ReservationTravellerExtraInformation> sharerExtraInfoList { get; set; }
        //public List<SharerViewModel> sharerExtraInfoList { get; set; }
        public Hashtable languageKeys { get; set; }
        public List<RoomRemarks> roomRemarks { get; set; }

        public Company company { get; set; }
        public Source source { get; set; }
        public Market market { get; set; }
        public RoomController.postedSelectedServiceItems postedItems { get; set; }
        public List<RoomController.ExtraServiceNoItemModel> postedNoItem { get; set; }
    }

    public class AmendStayModel
    {
        public int reservationRoomId { get; set; }
        public DateTime arrivalDate { get; set; }
        public DateTime departureDate { get; set; }
        public int adults { get; set; }
        public int child { get; set; }
    }
    [JsonObject(ItemIsReference =false)]
    public class SharerViewModel
    {
        
        public Travellers customer { get; set; }
        public int reservationRoomId { get; set; }
        public ReservationTravellerExtraInformation travellerExtraInfo { get; set; }
    }

    public class TravellerViewModel
    {
        public Travellers customer { get; set; }
        public ReservationTravellerExtraInformation travellerExtraInfo { get; set; }
    }

    public class RoomMoveModel
    {
        public int ReservationRoomId { get; set; }
        public int NewRoomTypeId { get; set; }
        public int NewRoomId { get; set; }
        //public int OldRoomPriceId { get; set; }
        public int OldRoomId { set; get; }
        public int NewRoomPriceId { get; set; }
        public int UsePriceRateType { get; set; }
        public Hashtable languageKeys { get; set; }
        public decimal RoomMoveFee { get; set; } 
        public string Description { get; set; }
        public DateTime ArrivalDate { get; set; }
        public DateTime DepartureDate { get; set; }
    }

    public class AssignRoomModel
    {
        public int ReservationRoomId { get; set; }
        public int RoomTypeId { get; set; }
        public int RoomId { get; set; }
        public DateTime ArrivalDate { get; set; }
        public DateTime DepartureDate { get; set; }
    }

    public class PastCheckOutModel
    {
        public int ReservationRoomId { get; set; }
        public bool ApplyCheckOutInThePast { get; set; }
        public DateTime NewDepartureDate { get; set; }
        public string PastCheckOutReason { get; set; }
        public Hashtable languageKeys { get; set; }
    }

    //public class RoomRemarkModel
    //{
    //    public int? ReservationRoomId { get; set; }
    //    public int? RemarkEventId { get; set; }
    //    public string Description { get; set; }
    //    public bool IsCompleted { get; set; }
    //    public bool IsDeleted { get; set; }
    //    public DateTime? CreatedDate { get; set; }
    //    public string RemarkEventCode { get; set; }
    //}
}
